package com.charon.module.sys.service;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.charon.module.sys.dao.UserEntityMapper;
import com.charon.module.sys.entity.UserEntity;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

/**
 * @ClassName：LoginService.java
 * @Description:登录模块Service 
 * @Author charon [248135724@qq.com]
 * @Date:   2018年11月30日 下午12:58:31 
 * @version V1.0 
 */
@Service
public class LoginService {

	@Autowired
	private UserEntityMapper uem;
	
	/**
	 * @Description: 根据账户查询用户信息
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年12月22日 上午11:30:59 
	 * @param account 账号
	 * @return 账户信息
	 */
	public UserEntity findUserByAccount(String account){
		if(StringUtils.isEmpty(account))return null;
		UserEntity ue=new UserEntity();
		ue.setAccount(account);
		List<UserEntity> list = uem.findList(ue);
		if(list!=null&&list.size()>0)return list.get(0);
		return null;
	}
	
	
	/**
	 * @Description: 根据账户查询用户信息
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年12月22日 上午11:30:59 
	 * @param id 用户Id
	 * @return 账户信息
	 */
	public UserEntity findUserById(Integer id){
		if(id==null||id==0)return null;
		UserEntity ue=new UserEntity();
		ue.setId(id);
		List<UserEntity> list = uem.findList(ue);
		if(list!=null&&list.size()>0)return list.get(0);
		return null;
	}
	
	/**
	 * @Description: 根据邮箱查询账户信息
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年12月22日 上午11:32:24 
	 * @param id
	 * @return 账户信息
	 */
	public UserEntity findUserByEmail(String email){
		UserEntity ue=new UserEntity();
		ue.setEmail(email);
		List<UserEntity> list = uem.findList(ue);
		if(list!=null&&list.size()>0)return list.get(0);
		return null;
	}
	
	/**
	 * @Description: 根据手机号查询账户信息
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年12月22日 上午11:32:24 
	 * @param id
	 * @return 账户信息
	 */
	public UserEntity findUserByPhone(Integer phone){
		if(phone==null||phone==0)return null;
		UserEntity ue=new UserEntity();
		ue.setPhone(String.valueOf(phone));
		List<UserEntity> list = uem.findList(ue);
		if(list!=null&&list.size()>0)return list.get(0);
		return null;
	}
	
	/**
	 * @Description: 插入用户   
	 * @author:charon [248135724@qq.com]
	 * @date:   2018年12月17日 下午10:26:40 
	 * @param: @param account 全信息
	 * @param: @return      
	 * @return: Integer 插入后的ID
	 */
	public Integer insertUser(UserEntity record){
		return uem.insertSelective(record);
	}
	
	/**
	 * @Description: 根据ID更新用户   
	 * @author: charon [248135724@qq.com]
	 * @date:   2018年12月15日 下午6:10:49 
	 * @param: record 全信息
	 * @return: Integer 更新条目
	 */
	public Integer updateUserById(UserEntity record){
		return uem.updateByPrimaryKeySelective(record);
	}
	
	/**
	 * @Description: 标记删除用户   
	 * @author:charon [248135724@qq.com]
	 * @date:   2018年12月17日 下午10:31:56 
	 * @param: @param record      
	 * @return: void
	 */
	public void deleteUser(UserEntity record){
		uem.deleteUser(record);
	}
	
	/**
	 * @Description: 分页查询
	 * @Author charon [248135724@qq.com]
	 * @Date:   2018年12月22日 下午4:36:18 
	 * @param user 查询条件
	 * @param pageNo 查询第几页
	 * @param pageSize 每页数量
	 * @return
	 */
	public PageInfo<UserEntity> findList(UserEntity user, Integer pageNo,Integer pageSize){
		    pageNo = pageNo == null?1:pageNo;
		    pageSize = pageSize == null?10:pageSize;
		    PageHelper.startPage(pageNo, pageSize);
		    List<UserEntity> list = uem.findList(user);
		    //用PageInfo对结果进行包装
		    PageInfo<UserEntity> page = new PageInfo<UserEntity>(list);
		    return page;
	}
	
	
}
